package view.themas;


import java.util.ArrayList;
import java.util.List;

import view.DefaultStijlSelectieStrategy;
import model.ItemKenmerken;
import view.Stijl;
import view.StijlSelectieStrategy;

public class StijlSelectieAfwijkendeSlidesStrategy implements
		StijlSelectieStrategy {

	@Override
	public Stijl geefRelevanteStijl(List<Stijl> stijlen,
			ItemKenmerken kenmerken) {
		DefaultStijlSelectieStrategy defaultStrategy = new DefaultStijlSelectieStrategy();
		
		// filter lijst stijlen met alleen stijlen die een overeenkomstige 'speciaal item' instelling hebben
		List<Stijl> filteredList = new ArrayList<Stijl>();
		for (Stijl stijl : stijlen)
		{
			if (stijl.kenmerken.getSpeciaalItem() == kenmerken.getSpeciaalItem())
			{
				filteredList.add(stijl);
			}
		}
		Stijl meestRelevanteStijl = defaultStrategy.geefRelevanteStijl(filteredList, kenmerken);
		
		if (meestRelevanteStijl == null)
		{
			return defaultStrategy.geefRelevanteStijl(stijlen, kenmerken);
		}
		else
		{
			return meestRelevanteStijl;
		}
	}


}
